diff --git a/src/metabase/cmd.clj b/src/metabase/cmd.clj
index c01468aaf795e7bed976993a5ccc6f4c4389e389..9493e98585c8d85c6dc9acbe7a25c48aac29f6f9 100644
--- a/src/metabase/cmd.clj
+++ b/src/metabase/cmd.clj
@@ -43,8 +43,8 @@
   [h2-filename & opts]
   (classloader/require 'metabase.cmd.dump-to-h2)
   (binding [mdb/*disable-data-migrations* true]
-    (let [keep-existing (boolean (some #{"--keep-existing"} opts))
-          return-code   ((resolve 'metabase.cmd.dump-to-h2/dump-to-h2!) h2-filename keep-existing)]
+    (let [options        {:keep-existing? (boolean (some #{"--keep-existing"} opts))}
+          return-code    ((resolve 'metabase.cmd.dump-to-h2/dump-to-h2!) h2-filename options)]
       (when (pos-int? return-code)
         (System/exit return-code)))))
 
diff --git a/src/metabase/cmd/dump_to_h2.clj b/src/metabase/cmd/dump_to_h2.clj
index 1fb7369438c8bc7db7737b5719f91f1800e8d2a0..28d90af8930cc14b0882ed2acd10b9d71c903c68 100644
--- a/src/metabase/cmd/dump_to_h2.clj
+++ b/src/metabase/cmd/dump_to_h2.clj
@@ -96,14 +96,15 @@
 
   Defaults to using `@metabase.db/db-file` as the connection string.
 
-  Target H2 DB will be deleted if it exists, unless `keep-existing` is truthy."
-  [h2-filename keep-existing]
+  Target H2 DB will be deleted if it exists, unless `keep-existing?` is truthy."
+  [h2-filename & [{:keys [keep-existing?]
+                   :or   {keep-existing? false}}]]
   (let [h2-filename (or h2-filename "metabase_dump.h2")]
     (println "Dumping to " h2-filename)
     (doseq [filename [h2-filename
-                    (str h2-filename ".mv.db")]]
+                      (str h2-filename ".mv.db")]]
       (when (and (.exists (io/file filename))
-                 (not keep-existing))
+                 (not keep-existing?))
         (io/delete-file filename)
         (println (u/format-color 'red (trs "Output H2 database already exists: %s, removing.") filename))))