Fix MaterializedViewMetadata when base table name is case sensitive (JAVA-953).
diff --git a/changelog/README.md b/changelog/README.md
index f3f4f94..0bcd2e2 100644
--- a/changelog/README.md
+++ b/changelog/README.md
@@ -16,6 +16,7 @@
 - [improvement] Warn if a custom codec collides with an existing one (JAVA-934)
 - [improvement] Allow typed getters/setters to target any CQL type (JAVA-940)
 - [bug] Fix Cluster.connect with a case-sensitive keyspace (JAVA-950)
+- [bug] Fix MaterializedViewMetadata when base table name is case sensitive (JAVA-953)
 
 
 ### 3.0.0-alpha3
diff --git a/driver-core/src/main/java/com/datastax/driver/core/MaterializedViewMetadata.java b/driver-core/src/main/java/com/datastax/driver/core/MaterializedViewMetadata.java
index 3709a55..3514557 100644
--- a/driver-core/src/main/java/com/datastax/driver/core/MaterializedViewMetadata.java
+++ b/driver-core/src/main/java/com/datastax/driver/core/MaterializedViewMetadata.java
@@ -60,7 +60,7 @@
 
         String name = row.getString("view_name");
         String tableName = row.getString("base_table_name");
-        TableMetadata baseTable = keyspace.getTable(tableName);
+        TableMetadata baseTable = keyspace.tables.get(tableName);
         if(baseTable == null) {
             logger.trace(String.format("Cannot find base table %s for materialized view %s.%s: "
                     + "Cluster.getMetadata().getKeyspace(\"%s\").getView(\"%s\") will return null",
diff --git a/driver-core/src/test/java/com/datastax/driver/core/MaterializedViewMetadataTest.java b/driver-core/src/test/java/com/datastax/driver/core/MaterializedViewMetadataTest.java
index 13aa5d2..1076825 100644
--- a/driver-core/src/test/java/com/datastax/driver/core/MaterializedViewMetadataTest.java
+++ b/driver-core/src/test/java/com/datastax/driver/core/MaterializedViewMetadataTest.java
@@ -94,16 +94,16 @@
     public void should_create_view_metadata_with_quoted_identifiers() {
         // given
         String createTable = String.format(
-            "CREATE TABLE %s.t1 ("
+            "CREATE TABLE %s.\"T1\" ("
                 + "\"theKey\" int, "
                 + "\"the;Clustering\" int, "
                 + "\"the Value\" int, "
                 + "PRIMARY KEY (\"theKey\", \"the;Clustering\"))",
             keyspace);
         String createMV = String.format(
-            "CREATE MATERIALIZED VIEW %s.mv1 AS "
+            "CREATE MATERIALIZED VIEW %s.\"Mv1\" AS "
                 + "SELECT \"theKey\", \"the;Clustering\", \"the Value\" "
-                + "FROM %s.t1 "
+                + "FROM %s.\"T1\" "
                 + "WHERE \"theKey\" IS NOT NULL AND \"the;Clustering\" IS NOT NULL AND \"the Value\" IS NOT NULL "
                 + "PRIMARY KEY (\"theKey\", \"the;Clustering\")",
             keyspace, keyspace);
@@ -111,13 +111,13 @@
         session.execute(createTable);
         session.execute(createMV);
         // then
-        TableMetadata table = cluster.getMetadata().getKeyspace(keyspace).getTable("t1");
-        MaterializedViewMetadata mv = cluster.getMetadata().getKeyspace(keyspace).getMaterializedView("mv1");
-        assertThat(table).isNotNull().hasName("t1").hasMaterializedView(mv).hasNumberOfColumns(3);
+        TableMetadata table = cluster.getMetadata().getKeyspace(keyspace).getTable("\"T1\"");
+        MaterializedViewMetadata mv = cluster.getMetadata().getKeyspace(keyspace).getMaterializedView("\"Mv1\"");
+        assertThat(table).isNotNull().hasName("T1").hasMaterializedView(mv).hasNumberOfColumns(3);
         assertThat(table.getColumns().get(0)).isNotNull().hasName("theKey").isPartitionKey().hasType(cint());
         assertThat(table.getColumns().get(1)).isNotNull().hasName("the;Clustering").isClusteringColumn().hasType(cint());
         assertThat(table.getColumns().get(2)).isNotNull().hasName("the Value").isRegularColumn().hasType(cint());
-        assertThat(mv).isNotNull().hasName("mv1").hasBaseTable(table).hasNumberOfColumns(3);
+        assertThat(mv).isNotNull().hasName("Mv1").hasBaseTable(table).hasNumberOfColumns(3);
         assertThat(mv.getColumns().get(0)).isNotNull().hasName("theKey").isPartitionKey().hasType(cint());
         assertThat(mv.getColumns().get(1)).isNotNull().hasName("the;Clustering").isClusteringColumn().hasType(cint());
         assertThat(mv.getColumns().get(2)).isNotNull().hasName("the Value").isRegularColumn().hasType(cint());
diff --git a/driver-core/src/test/java/com/datastax/driver/core/TableMetadataAssert.java b/driver-core/src/test/java/com/datastax/driver/core/TableMetadataAssert.java
index a4c259a..0dacbdb 100644
--- a/driver-core/src/test/java/com/datastax/driver/core/TableMetadataAssert.java
+++ b/driver-core/src/test/java/com/datastax/driver/core/TableMetadataAssert.java
@@ -77,7 +77,7 @@
     }
 
     public TableMetadataAssert hasMaterializedView(MaterializedViewMetadata expected) {
-        assertThat(actual.getView(expected.getName())).isNotNull().isEqualTo(expected);
+        assertThat(actual.getView(Metadata.quote(expected.getName()))).isNotNull().isEqualTo(expected);
         return this;
     }