As an alternative, you could create a table and a task that keeps updating it with changes in the view:
create or replace table track_queries
change_tracking = true
as
select *
from table(information_schema.query_history())
limit 0;
merge into track_queries using (
select *
from table(information_schema.query_history())
) as b
on track_queries.query_id = b.query_id
and track_queries.start_time = b.start_time
when matched and track_queries.end_time != b.end_time
then update
set BYTES_SCANNED=b.BYTES_SCANNED, COMPILATION_TIME=b.COMPILATION_TIME, CREDITS_USED_CLOUD_SERVICES=b.CREDITS_USED_CLOUD_SERVICES, DATABASE_NAME=b.DATABASE_NAME, END_TIME=b.END_TIME, EXECUTION_STATUS=b.EXECUTION_STATUS, EXECUTION_TIME=b.EXECUTION_TIME, EXTERNAL_FUNCTION_TOTAL_INVOCATIONS=b.EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES=b.EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS=b.EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES=b.EXTERNAL_FUNCTION_TOTAL_SENT_BYTES, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS=b.EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, INBOUND_DATA_TRANSFER_BYTES=b.INBOUND_DATA_TRANSFER_BYTES, IS_CLIENT_GENERATED_STATEMENT=b.IS_CLIENT_GENERATED_STATEMENT, LIST_EXTERNAL_FILE_TIME=b.LIST_EXTERNAL_FILE_TIME, OUTBOUND_DATA_TRANSFER_BYTES=b.OUTBOUND_DATA_TRANSFER_BYTES, QUERY_ID=b.QUERY_ID, QUERY_TAG=b.QUERY_TAG, QUERY_TEXT=b.QUERY_TEXT, QUERY_TYPE=b.QUERY_TYPE, QUEUED_OVERLOAD_TIME=b.QUEUED_OVERLOAD_TIME, QUEUED_PROVISIONING_TIME=b.QUEUED_PROVISIONING_TIME, QUEUED_REPAIR_TIME=b.QUEUED_REPAIR_TIME, RELEASE_VERSION=b.RELEASE_VERSION, ROLE_NAME=b.ROLE_NAME, ROWS_PRODUCED=b.ROWS_PRODUCED, SCHEMA_NAME=b.SCHEMA_NAME, SESSION_ID=b.SESSION_ID, START_TIME=b.START_TIME, TOTAL_ELAPSED_TIME=b.TOTAL_ELAPSED_TIME, TRANSACTION_BLOCKED_TIME=b.TRANSACTION_BLOCKED_TIME, USER_NAME=b.USER_NAME, WAREHOUSE_NAME=b.WAREHOUSE_NAME, WAREHOUSE_TYPE=b.WAREHOUSE_TYPE
when not matched
then insert (BYTES_SCANNED, COMPILATION_TIME, CREDITS_USED_CLOUD_SERVICES, DATABASE_NAME, END_TIME, EXECUTION_STATUS, EXECUTION_TIME, EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, INBOUND_DATA_TRANSFER_BYTES, IS_CLIENT_GENERATED_STATEMENT, LIST_EXTERNAL_FILE_TIME, OUTBOUND_DATA_TRANSFER_BYTES, QUERY_ID, QUERY_TAG, QUERY_TEXT, QUERY_TYPE, QUEUED_OVERLOAD_TIME, QUEUED_PROVISIONING_TIME, QUEUED_REPAIR_TIME, RELEASE_VERSION, ROLE_NAME, ROWS_PRODUCED, SCHEMA_NAME, SESSION_ID, START_TIME, TOTAL_ELAPSED_TIME, TRANSACTION_BLOCKED_TIME, USER_NAME, WAREHOUSE_NAME, WAREHOUSE_TYPE) values (BYTES_SCANNED, COMPILATION_TIME, CREDITS_USED_CLOUD_SERVICES, DATABASE_NAME, END_TIME, EXECUTION_STATUS, EXECUTION_TIME, EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, INBOUND_DATA_TRANSFER_BYTES, IS_CLIENT_GENERATED_STATEMENT, LIST_EXTERNAL_FILE_TIME, OUTBOUND_DATA_TRANSFER_BYTES, QUERY_ID, QUERY_TAG, QUERY_TEXT, QUERY_TYPE, QUEUED_OVERLOAD_TIME, QUEUED_PROVISIONING_TIME, QUEUED_REPAIR_TIME, RELEASE_VERSION, ROLE_NAME, ROWS_PRODUCED, SCHEMA_NAME, SESSION_ID, START_TIME, TOTAL_ELAPSED_TIME, TRANSACTION_BLOCKED_TIME, USER_NAME, WAREHOUSE_NAME, WAREHOUSE_TYPE);
In this way the table track_queries enables change tracking - as long as the task periodically brings in the latest queries from the view.
Check the options to get more than 100 rows from query_history: