**Describe what's wrong**
clickhouse creates lots of system log tables if config storage settings for system log table

**Does it reproduce on recent release?**
22.1

**How to reproduce**

* Which ClickHouse server version to use
22.1
* Non-default settings, if any
config query_log table as below:
```
query_log:
  partition_by:
    "@remove": 1
  engine: |
    ENGINE = MergeTree PARTITION BY (event_date)
    ORDER BY (event_time)
    TTL event_date + INTERVAL 14 DAY DELETE
    SETTINGS ttl_only_drop_parts=1
```

**Expected behavior**
clickhouse should not create new system log tables if the table is not changed.

**Error message and/or stacktrace**
2022.02.26 19:53:28.039097 [ 1197451 ] {} <Debug> SystemLog (system.query_log): Existing table system.query_log for system log has obsolete or different structure. Renaming it to query_log_13.
Old: CREATE TABLE system.query_log (....) ENGINE = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + toIntervalDay(14) 
New: CREATE TABLE system.query_log (....) ENGINE = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + toIntervalDay(14) SETTINGS ttl_only_drop_parts = 1

**Additional context**
in this commit https://github.com/ClickHouse/ClickHouse/commit/5fafeea76330db8037f2beddd8a4386cad54505a, v3: SETTINGS of MergeTree in old CREATE TABLE query is reset before comparing with new create query.


std::string format_name;
        std::optional<FormatSettings> format_settings;
        std::string compression_method;
        const ColumnsDescription & columns;
        const ConstraintsDescription & constraints;
        const String & comment;
    };
    NamesAndTypesList getVirtuals() const override;
    static Strings getPathsList(const String & table_path, const String & user_files_path, ContextPtr context, size_t & total_bytes_to_read);
    
    
    
    
    bool isColumnOriented() const;
    bool supportsPartitionBy() const override { return true; }
    ColumnsDescription getTableStructureFromFileDescriptor(ContextPtr context);
    static ColumnsDescription getTableStructureFromFile(
        const String & format,
        const std::vector<String> & paths,
        const String & compression_method,
        const std::optional<FormatSettings> & format_settings,
        ContextPtr context);
protected:
    friend class StorageFileSource;
    friend class StorageFileSink;
    
    StorageFile(int table_fd_, CommonArguments args);
    
    StorageFile(const std::string & table_path_, const std::string & user_files_path, CommonArguments args);