Ordinary database engine is deprecated but there is no simple mean to change database engine to Atomic for existing databases.

Possible options:
- ALTER DATABASE MODIFY ENGINE query.
- Flag that triggers migration at ClickHouse startup.

The latter should be easier to implement. 

new_ops.insert(new_ops.end(), ops.begin(), ops.end());
            ops = std::move(new_ops);
        }
        try
        {
            Coordination::Responses responses;
            Coordination::Error e = zookeeper->tryMulti(ops, responses);
            if (e == Coordination::Error::ZOK)
                return transaction.commit();
            if (e == Coordination::Error::ZNODEEXISTS)
            {
                size_t num_check_ops = 2 * absent_part_paths_on_replicas.size();
                size_t failed_op_index = zkutil::getFailedOpIndex(e, responses);
                if (failed_op_index < num_check_ops)
                {
                    LOG_INFO(log, "The part {} on a replica suddenly appeared, will recheck checksums", ops[failed_op_index]->getPath());
                    continue;
                }
            }
            throw zkutil::KeeperException(e);
        }
        catch (const std::exception &)
        {
            unlockSharedData(*part);
            throw;
        }
    }
}
String StorageReplicatedMergeTree::getChecksumsForZooKeeper(const MergeTreeDataPartChecksums & checksums) const