### Description

This is to investigate what we could do to support the data streams in SQL. The backing indices can be queried already, but to address them similarly as they're queried over QDSL one would need to construct a pattern learned out of band and not through SQL metadata discovery mechanisms.
x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/jdbc/DatabaseMetaDataTestCase.java
public void testGetCatalogs() throws Exception {
        try (Connection h2 = LocalH2.anonymousDb(); Connection es = esJdbc()) {
            assertResultSets(
                h2.createStatement().executeQuery("SELECT '" + clusterName() + "' AS TABLE_CAT"),
                es.getMetaData().getCatalogs()
            );
        }
    }
    public void testColumns() throws Exception {
        index("test1", body -> body.field("name", "bob"));
        index("test2", body -> {
            body.field("number", 7);
            body.field("date", "2017-01-01T01:01:01Z");
            body.field("float", 42.0);
        });
        try (Connection h2 = LocalH2.anonymousDb(); Connection es = esJdbc()) {
            h2.createStatement().executeUpdate("RUNSCRIPT FROM 'classpath:/setup_mock_metadata_get_columns.sql'");
            ResultSet expected = h2.createStatement().executeQuery("SELECT '" + clusterName() + "' AS TABLE_CAT, * FROM mock");
            assertResultSets(expected, es.getMetaData().getColumns(null, "%", "%", null));
        }
    }
    public void testColumnsForEmptyTable() throws Exception {
        try (Connection h2 = LocalH2.anonymousDb(); Connection es = esJdbc()) {
            h2.createStatement().executeUpdate("RUNSCRIPT FROM 'classpath:/setup_mock_metadata_get_columns_empty.sql'");
            ResultSet expected = h2.createStatement().executeQuery("SELECT '" + clusterName() + "' AS TABLE_CAT, * FROM mock");
            assertResultSets(expected, es.getMetaData().getColumns(null, "%", "%", null));
        }
    }
}