Clickhouse version: 21.2.5.5

Got wrong result when excuting mutation on Memory table engine.

```sql
CREATE TABLE mem_test(id Int64) ENGINE=Memory();
INSERT INTO mem_test VALUES (1), (2), (3);
ALTER TABLE mem_test UPDATE id=4 WHERE id=1;
SELECT count(*) FROM mem_test;

┌─count()─┐
│      24 │
└─────────┘

SELECT * FROM mem_test;

┌─id─┐
│  4 │
│  2 │
│  3 │
└────┘

3 rows in set. Elapsed: 0.001 sec.
```

{
    return std::make_shared<MemoryBlockOutputStream>(*this, metadata_snapshot);
}
void StorageMemory::drop()
{
    data.set(std::make_unique<Blocks>());
    total_size_bytes.store(0, std::memory_order_relaxed);
    total_size_rows.store(0, std::memory_order_relaxed);
}
static inline void updateBlockData(Block & old_block, const Block & new_block)
{
    for (const auto & it : new_block)
    {
        auto col_name = it.name;
        auto & col_with_type_name = old_block.getByName(col_name);
        col_with_type_name.column = it.column;
    }
}
void StorageMemory::checkMutationIsPossible(const MutationCommands & , const Settings & ) const
{
    
}
void StorageMemory::mutate(const MutationCommands & commands, ContextPtr context)