Clickhouse crashes, when you specify the same name for materialized view and TO table.

**How to reproduce**
* version 20.9.2.20 (official build)

CREATE TABLE table1( Col1 String )
ENGINE = MergeTree()
ORDER BY Col1;

CREATE MATERIALIZED VIEW view1 to view1
AS SELECT DISTINCT Col1 FROM table1;

select name, engine, total_rows, data_paths from system.tables;

[osboxes] 2020.10.07 15:57:21.185817 [ 64414 ] {ad0193e0-ae82-40f3-b773-3091737e3d16} <Debug> executeQuery: (from 192.168.1.178:64108) select name, engine, total_rows, data_paths from system.tables;
Error on processing query: select name, engine, total_rows, data_paths from system.tables;
Code: 32, e.displayText() = DB::Exception: Attempt to read after eof: while receiving packet from 192.168.1.144:9000, Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x18e02790 in /usr/bin/clickhouse
1. DB::throwReadAfterEOF() @ 0xe734291 in /usr/bin/clickhouse
2. DB::readVarUInt(unsigned long&, DB::ReadBuffer&) @ 0xe931034 in /usr/bin/clickhouse
3. DB::Connection::receivePacket() @ 0x16432957 in /usr/bin/clickhouse
4. DB::Client::receiveAndProcessPacket(bool) @ 0xe8319c8 in /usr/bin/clickhouse
5. DB::Client::receiveResult() @ 0xe833255 in /usr/bin/clickhouse
6. DB::Client::processParsedSingleQuery() @ 0xe833b1d in /usr/bin/clickhouse
7. DB::Client::processMultiQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0xe83636c in /usr/bin/clickhouse
8. DB::Client::mainImpl() @ 0xe838b18 in /usr/bin/clickhouse
9. DB::Client::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) @ 0xe83a7da in /usr/bin/clickhouse
10. Poco::Util::Application::run() @ 0x18d31827 in /usr/bin/clickhouse
11. mainEntryClickHouseClient(int, char**) @ 0xe8028c9 in /usr/bin/clickhouse
12. main @ 0xe71a891 in /usr/bin/clickhouse
13. __libc_start_main @ 0x21b97 in /lib/x86_64-linux-gnu/libc-2.27.so
14. _start @ 0xe71a02e in /usr/bin/clickhouse
 (version 20.9.2.20 (official build))


**Expected behavior**
I think the better solution is to forbid using the same names for materialized view and TO table

{
    return DatabaseCatalog::instance().getTable(target_table_id, global_context);
}
StoragePtr StorageMaterializedView::tryGetTargetTable() const
{
    return DatabaseCatalog::instance().tryGetTable(target_table_id, global_context);
}
Strings StorageMaterializedView::getDataPaths() const
{
    if (auto table = tryGetTargetTable())
        return table->getDataPaths();
    return {};
}
void StorageMaterializedView::checkTableCanBeDropped() const
{
    
    if (!has_inner_table)
        return;
    auto target_table = tryGetTargetTable();
    if (!target_table)
        return;
    target_table->checkTableCanBeDropped();
}
void StorageMaterializedView::checkPartitionCanBeDropped(const ASTPtr & partition)