class StreamCatalogService {

    String getSqlString(List<String> streams,
                                List<Projection> projections,
                                String condition,
                                List<String> groupByKeys) {
        String SQL = select(streams, projections).orElse("SELECT * ");
        SQL += join(" FROM ", getTable(streams)).get();
        SQL += join(" WHERE ", convertNested(streams, condition)).orElse("");
        SQL += join(" GROUP BY ", convertNested(streams, groupByKeys)).orElse("");
        return translateFunctions(SQL, getUdfInternalNames());
    }

    public  StreamCatalogService(StorageManager dao, FileStorage fileStorage, MLModelRegistryClient modelRegistryClient);

}