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. 

size_t max_cache_size = memory_amount * cache_size_to_ram_max_ratio;
    
    String uncompressed_cache_policy = config().getString("uncompressed_cache_policy", "");
    LOG_INFO(log, "Uncompressed cache policy name {}", uncompressed_cache_policy);
    size_t uncompressed_cache_size = config().getUInt64("uncompressed_cache_size", 0);
    if (uncompressed_cache_size > max_cache_size)
    {
        uncompressed_cache_size = max_cache_size;
        LOG_INFO(log, "Uncompressed cache size was lowered to {} because the system has low amount of memory",
            formatReadableSizeWithBinarySuffix(uncompressed_cache_size));
    }
    global_context->setUncompressedCache(uncompressed_cache_size, uncompressed_cache_policy);
    
    global_context->setDefaultProfiles(config());
    const Settings & settings = global_context->getSettingsRef();
    
    
    global_context->initializeBackgroundExecutorsIfNeeded();
    if (settings.async_insert_threads)
        global_context->setAsynchronousInsertQueue(std::make_shared<AsynchronousInsertQueue>(
            global_context,
            settings.async_insert_threads,
            settings.async_insert_max_data_size,
            AsynchronousInsertQueue::Timeout{.busy = settings.async_insert_busy_timeout_ms, .stale = settings.async_insert_stale_timeout_ms}));
    
    size_t mark_cache_size = config().getUInt64("mark_cache_size", 5368709120);
    String mark_cache_policy = config().getString("mark_cache_policy", "");
    if (!mark_cache_size)
        LOG_ERROR(log, "Too low mark cache size will lead to severe performance degradation.");
    if (mark_cache_size > max_cache_size)