Recovery from savepoint already works:
- changelog off -> on:
- changelog on -> off: directly calling underlyingBackend.savepoint() (instead of writer.persist())
For checkpoints, changelog on -> off doesn't work. Regular state backend will receive materialized and non-aterialized state on recovery. To support it, state changes have to be applied on recovery even if changelog backend is disabled.