diff --git a/h2/src/main/org/h2/command/Command.java b/h2/src/main/org/h2/command/Command.java
index 237d9c6..ef5eb2c 100644
--- a/h2/src/main/org/h2/command/Command.java
+++ b/h2/src/main/org/h2/command/Command.java
@@ -30,7 +30,7 @@
 /**
  * Represents a SQL statement. This object is only used on the server side.
  */
-public abstract class Command implements CommandInterface {
+public abstract class Command implements CommandInterface, Command0 {

     /**
      * The session.
@@ -147,7 +147,7 @@
      *
      * @throws DbException if the statement has been canceled
      */
-    protected void checkCanceled() {
+    public void checkCanceled() {
         if (cancel) {
             cancel = false;
             throw DbException.get(ErrorCode.STATEMENT_WAS_CANCELED);
diff --git a/h2/src/main/org/h2/command/Command0.java b/h2/src/main/org/h2/command/Command0.java
new file mode 100644
index 0000000..7a9d7f3
--- /dev/null
+++ b/h2/src/main/org/h2/command/Command0.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2004-2024 H2 Group. Multiple-Licensed under the MPL 2.0,
+ * and the EPL 1.0 (https://h2database.com/html/license.html).
+ * Initial Developer: H2 Group
+ */
+package org.h2.command;
+
+import java.util.Set;
+
+import org.h2.engine.DbObject;
+
+public interface Command0 {
+
+	public Set<DbObject> getDependencies();
+
+	public void checkCanceled();
+
+	public void cancel();
+
+}
diff --git a/h2/src/main/org/h2/command/Prepared.java b/h2/src/main/org/h2/command/Prepared.java
index 6a2151e..cc58336 100644
--- a/h2/src/main/org/h2/command/Prepared.java
+++ b/h2/src/main/org/h2/command/Prepared.java
@@ -337,7 +337,7 @@
      */
     public void checkCanceled() {
         session.checkCanceled();
-        Command c = command != null ? command : session.getCurrentCommand();
+        Command0 c = command != null ? command : session.getCurrentCommand();
         if (c != null) {
             c.checkCanceled();
         }
diff --git a/h2/src/main/org/h2/engine/SessionLocal.java b/h2/src/main/org/h2/engine/SessionLocal.java
index 67bb22a..5c021c3 100644
--- a/h2/src/main/org/h2/engine/SessionLocal.java
+++ b/h2/src/main/org/h2/engine/SessionLocal.java
@@ -19,10 +19,12 @@
 import java.util.Set;
 import java.util.WeakHashMap;
 import java.util.concurrent.atomic.AtomicReference;
+
 import org.h2.api.ErrorCode;
 import org.h2.api.JavaObjectSerializer;
 import org.h2.command.Command;
 import org.h2.command.CommandInterface;
+import org.h2.command.Command0;
 import org.h2.command.Parser;
 import org.h2.command.ParserBase;
 import org.h2.command.Prepared;
@@ -162,7 +164,7 @@
     private HashMap<String, Constraint> localTempTableConstraints;
     private int throttleMs;
     private long lastThrottleNs;
-    private Command currentCommand;
+    private Command0 currentCommand;
     private boolean allowLiterals;
     private String currentSchemaName;
     private String[] schemaSearchPath;
@@ -1224,7 +1226,7 @@
      *
      * @param command the command
      */
-    private void setCurrentCommand(Command command) {
+    private void setCurrentCommand(Command0 command) {
         State targetState = command == null ? State.SLEEP : State.RUNNING;
         transitionToState(targetState, true);
         if (isOpen()) {
@@ -1288,7 +1290,7 @@
         return cancelAtNs;
     }

-    public Command getCurrentCommand() {
+    public Command0 getCurrentCommand() {
         return currentCommand;
     }

@@ -1632,7 +1634,7 @@
      * @param command about to be started
      */
     @SuppressWarnings("incomplete-switch")
-    public void startStatementWithinTransaction(Command command) {
+    public void startStatementWithinTransaction(Command0 command) {
         Transaction transaction = getTransaction();
         if (transaction != null) {
             HashSet<MVMap<Object,VersionedValue<Object>>> maps = new HashSet<>();
diff --git a/h2/src/main/org/h2/expression/function/SessionControlFunction.java b/h2/src/main/org/h2/expression/function/SessionControlFunction.java
index fc5deb7..5fe4544 100644
--- a/h2/src/main/org/h2/expression/function/SessionControlFunction.java
+++ b/h2/src/main/org/h2/expression/function/SessionControlFunction.java
@@ -5,7 +5,7 @@
  */
 package org.h2.expression.function;

-import org.h2.command.Command;
+import org.h2.command.Command0;
 import org.h2.engine.SessionLocal;
 import org.h2.expression.Expression;
 import org.h2.expression.ExpressionVisitor;
@@ -51,7 +51,7 @@
         session.getUser().checkAdmin();
         loop: for (SessionLocal s : session.getDatabase().getSessions(false)) {
             if (s.getId() == targetSessionId) {
-                Command c = s.getCurrentCommand();
+                Command0 c = s.getCurrentCommand();
                 switch (function) {
                 case ABORT_SESSION:
                     if (c != null) {
diff --git a/h2/src/main/org/h2/index/Index.java b/h2/src/main/org/h2/index/Index.java
index c042740..ecb42fc 100644
--- a/h2/src/main/org/h2/index/Index.java
+++ b/h2/src/main/org/h2/index/Index.java
@@ -248,6 +248,7 @@
      * @return the cursor to iterate over the results
      */
     public abstract Cursor find(SessionLocal session, SearchRow first, SearchRow last, boolean reverse);
+    public Cursor find(SessionLocal session, SearchRow first, SearchRow last) { return find(session, first, last, false); }

     /**
      * Estimate the cost to search for rows given the search mask.
diff --git a/h2/src/main/org/h2/jmx/DatabaseInfo.java b/h2/src/main/org/h2/jmx/DatabaseInfo.java
index 7852082..f10cc98 100644
--- a/h2/src/main/org/h2/jmx/DatabaseInfo.java
+++ b/h2/src/main/org/h2/jmx/DatabaseInfo.java
@@ -10,10 +10,12 @@
 import java.util.Hashtable;
 import java.util.Map;
 import java.util.Map.Entry;
+
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-import org.h2.command.Command;
+
+import org.h2.command.Command0;
 import org.h2.engine.ConnectionInfo;
 import org.h2.engine.Constants;
 import org.h2.engine.Database;
@@ -201,7 +203,7 @@
             buff.append("connected: ").
                     append(session.getSessionStart().getString()).
                     append('\n');
-            Command command = session.getCurrentCommand();
+            Command0 command = session.getCurrentCommand();
             if (command != null) {
                 buff.append("statement: ")
                         .append(command)
diff --git a/h2/src/main/org/h2/table/InformationSchemaTable.java b/h2/src/main/org/h2/table/InformationSchemaTable.java
index 64aa746..1dfb899 100644
--- a/h2/src/main/org/h2/table/InformationSchemaTable.java
+++ b/h2/src/main/org/h2/table/InformationSchemaTable.java
@@ -13,7 +13,7 @@

 import org.h2.api.IntervalQualifier;
 import org.h2.api.Trigger;
-import org.h2.command.Command;
+import org.h2.command.Command0;
 import org.h2.command.ParserBase;
 import org.h2.constraint.Constraint;
 import org.h2.constraint.Constraint.Type;
@@ -2685,7 +2685,7 @@

     private void sessions(SessionLocal session, ArrayList<Row> rows, SessionLocal s) {
         NetworkConnectionInfo networkConnectionInfo = s.getNetworkConnectionInfo();
-        Command command = s.getCurrentCommand();
+        Command0 command = s.getCurrentCommand();
         int blockingSessionId = s.getBlockingSessionId();
         User user = s.getUser();
         if (user == null) {
diff --git a/h2/src/main/org/h2/table/InformationSchemaTableLegacy.java b/h2/src/main/org/h2/table/InformationSchemaTableLegacy.java
index 4778a11..a9d7772 100644
--- a/h2/src/main/org/h2/table/InformationSchemaTableLegacy.java
+++ b/h2/src/main/org/h2/table/InformationSchemaTableLegacy.java
@@ -18,7 +18,7 @@
 import java.util.Locale;
 import java.util.Map;

-import org.h2.command.Command;
+import org.h2.command.Command0;
 import org.h2.command.ParserBase;
 import org.h2.command.dml.Help;
 import org.h2.constraint.Constraint;
@@ -1787,7 +1787,7 @@
             for (SessionLocal s : database.getSessions(false)) {
                 if (admin || s == session) {
                     NetworkConnectionInfo networkConnectionInfo = s.getNetworkConnectionInfo();
-                    Command command = s.getCurrentCommand();
+                    Command0 command = s.getCurrentCommand();
                     int blockingSessionId = s.getBlockingSessionId();
                     add(session,
                             rows,
diff --git a/h2/src/main/org/h2/util/package-info.java b/h2/src/main/org/h2/util/package-info.java
deleted file mode 100644
index 25a7a20..0000000
--- a/h2/src/main/org/h2/util/package-info.java
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * Copyright 2004-2024 H2 Group. Multiple-Licensed under the MPL 2.0,
- * and the EPL 1.0 (https://h2database.com/html/license.html).
- * Initial Developer: H2 Group
- */
-
-/**
- * Internal utility classes.
- */
-package org.h2.util;
