def METHOD_NAME(self):
    loop = asyncio.new_event_loop()
    tasks = []
    # Create Matviews
    for matview, config in self.matviews.items():
        logger.info(f"Creating Future for matview {matview}")
        sql = (self.matview_dir / config["sql_filename"]).read_text()
        tasks.append(asyncio.ensure_future(async_run_creates(sql, wrapper=Timer(matview)), loop=loop))
    # Create Chunked Matviews
    if self.include_chunked_matviews:
        for matview, config in self.chunked_matviews.items():
            for current_chunk in range(self.chunk_count):
                chunked_matview = f"{matview}_{current_chunk}"
                logger.info(f"Creating Future for chunked matview {chunked_matview}")
                sql = (self.matview_chunked_dir / f"{chunked_matview}.sql").read_text()
                tasks.append(
                    asyncio.ensure_future(async_run_creates(sql, wrapper=Timer(chunked_matview)), loop=loop)
                )
    if len(tasks) > 0:
        loop.run_until_complete(asyncio.gather(*tasks))
    loop.close()
    if "transaction_search" in self.chunked_matviews and self.include_chunked_matviews:
        logger.info("Inserting data from transaction_search chunks into transaction_search table.")
        call_command(
            "combine_transaction_search_chunks",
            chunk_count=self.chunk_count,
            index_concurrency=self.index_concurrency,
            matview_dir=self.matview_chunked_dir,
        )
    if self.remove_matviews:
        run_sql(DROP_OLD_MATVIEWS.read_text(), "Drop Old Materialized Views")