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 Pipe(std::make_shared<MemorySource>(
            column_names,
            *this,
            metadata_snapshot,
            nullptr ,
            nullptr ,
            [this](std::shared_ptr<const Blocks> & data_to_initialize)
            {
                data_to_initialize = data.get();
            }));
    }
    auto current_data = data.get();
    size_t size = current_data->size();
    if (num_streams > size)
        num_streams = size;
    Pipes pipes;
    auto parallel_execution_index = std::make_shared<std::atomic<size_t>>(0);
    for (size_t stream = 0; stream < num_streams; ++stream)
    {
        pipes.emplace_back(std::make_shared<MemorySource>(column_names, *this, metadata_snapshot, current_data, parallel_execution_index));
    }
    return Pipe::unitePipes(std::move(pipes));
}
BlockOutputStreamPtr StorageMemory::write(const ASTPtr & , const StorageMetadataPtr & metadata_snapshot, ContextPtr )