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. 

data_parts = getVisibleDataPartsVectorInPartitions(local_context, getPartitionIDsFromQuery(*partitions, local_context));
    else
        data_parts = getVisibleDataPartsVector(local_context);
    auto backup_entries = backupParts(data_parts, "");
    auto coordination = backup_entries_collector.getBackupCoordination();
    String shared_id = getTableSharedID();
    coordination->addReplicatedDataPath(shared_id, data_path_in_backup);
    std::unordered_map<String, SipHash> part_names_with_hashes_calculating;
    for (auto & [relative_path, backup_entry] : backup_entries)
    {
        size_t slash_pos = relative_path.find('/');
        if (slash_pos != String::npos)
        {
            String part_name = relative_path.substr(0, slash_pos);
            if (MergeTreePartInfo::tryParsePartName(part_name, MERGE_TREE_DATA_MIN_FORMAT_VERSION_WITH_CUSTOM_PARTITIONING))
            {
                auto & hash = part_names_with_hashes_calculating[part_name];
                if (relative_path.ends_with(".bin"))
                {
                    auto checksum = backup_entry->getChecksum();
                    hash.update(relative_path);
                    hash.update(backup_entry->getSize());
                    hash.update(*checksum);
                }
                continue;
            }
        }
        
        throw Exception(ErrorCodes::LOGICAL_ERROR, "{} doesn't follow the format <part_name>/<path>", quoteString(relative_path));
    }