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. 

ContextMutablePtr , LoadingStrictnessLevel )
    {
    }
    virtual void loadTablesMetadata(ContextPtr , ParsedTablesMetadata & , bool )
    {
        throw Exception(ErrorCodes::LOGICAL_ERROR, "Not implemented");
    }
    virtual void loadTableFromMetadata(ContextMutablePtr , const String & , const QualifiedTableName & , const ASTPtr & ,
        LoadingStrictnessLevel )
    {
        throw Exception(ErrorCodes::LOGICAL_ERROR, "Not implemented");
    }
    virtual void startupTables(ThreadPool & , LoadingStrictnessLevel ) {}
    
    virtual bool isTableExist(const String & name, ContextPtr context) const = 0;
    
    
    virtual void checkMetadataFilenameAvailability(const String & ) const {}
    
    virtual StoragePtr tryGetTable(const String & name, ContextPtr context) const = 0;
    StoragePtr getTable(const String & name, ContextPtr context) const;
    virtual UUID tryGetTableUUID(const String & ) const { return UUIDHelpers::Nil; }
    using FilterByNameFunction = std::function<bool(const String &)>;
    
    
    virtual DatabaseTablesIteratorPtr getTablesIterator(ContextPtr context, const FilterByNameFunction & filter_by_table_name = {}) const = 0; 
    
    virtual bool empty() const = 0;
    
    virtual void createTable(