diff --git a/frontend/src/metabase-lib/lib/queries/NativeQuery.ts b/frontend/src/metabase-lib/lib/queries/NativeQuery.ts
index 2c8c84dc97bbe0463bb336966ca10f0746b69834..5c21a1ee4aa7e6bd8b8353b2ba77aba65e7d90ca 100644
--- a/frontend/src/metabase-lib/lib/queries/NativeQuery.ts
+++ b/frontend/src/metabase-lib/lib/queries/NativeQuery.ts
@@ -1,17 +1,12 @@
 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
 // @ts-nocheck
 import { t } from "ttag";
-import { chain, assoc, getIn, assocIn, updateIn } from "icepick";
+import { assoc, assocIn, chain, getIn, updateIn } from "icepick";
 import _ from "underscore";
 import slugg from "slugg";
 import { countLines } from "metabase/lib/string";
 import { humanize } from "metabase/lib/formatting";
 import Utils from "metabase/lib/utils";
-import {
-  getEngineNativeAceMode,
-  getEngineNativeType,
-  getEngineNativeRequiresTable,
-} from "metabase/lib/engine";
 import {
   Card,
   DatasetQuery,
@@ -19,8 +14,8 @@ import {
 } from "metabase-types/types/Card";
 import {
   DependentMetadataItem,
-  TemplateTags,
   TemplateTag,
+  TemplateTags,
 } from "metabase-types/types/Query";
 import { DatabaseEngine, DatabaseId } from "metabase-types/types/Database";
 import Question from "metabase-lib/lib/Question";
@@ -31,7 +26,7 @@ import Variable from "metabase-lib/lib/variables/Variable";
 import TemplateTagVariable from "metabase-lib/lib/variables/TemplateTagVariable";
 import { createTemplateTag } from "metabase-lib/lib/queries/TemplateTag";
 import ValidationError from "metabase-lib/lib/ValidationError";
-import Dimension, { TemplateTagDimension, FieldDimension } from "../Dimension";
+import Dimension, { FieldDimension, TemplateTagDimension } from "../Dimension";
 import DimensionOptions from "../DimensionOptions";
 
 import { getNativeQueryTable } from "./utils/native-query-table";
@@ -334,25 +329,11 @@ export default class NativeQuery extends AtomicQuery {
     return queryText ? countLines(queryText) : 0;
   }
 
-  /**
-   * The ACE Editor mode name, e.g. 'ace/mode/json'
-   */
-  aceMode(): string {
-    return getEngineNativeAceMode(this.engine());
-  }
-
-  /**
-   * Name used to describe the text written in that mode, e.g. 'JSON'. Used to fill in the blank in 'This question is written in _______'.
-   */
-  nativeQueryLanguage() {
-    return getEngineNativeType(this.engine()).toUpperCase();
-  }
-
   /**
    * Whether the DB selector should be a DB + Table selector. Mongo needs both DB + Table.
    */
   requiresTable() {
-    return getEngineNativeRequiresTable(this.engine());
+    return this.engine() === "mongo";
   }
 
   templateTagsMap(): TemplateTags {
diff --git a/frontend/src/metabase/lib/engine.js b/frontend/src/metabase/lib/engine.js
index 03ada35edd4cab7d689f572b7ceafb246346decd..2f8eeadccf9c2029799440329abeda0815540571 100644
--- a/frontend/src/metabase/lib/engine.js
+++ b/frontend/src/metabase/lib/engine.js
@@ -17,6 +17,10 @@ export function getEngineNativeType(engine) {
   }
 }
 
+export function getNativeQueryLanguage(engine) {
+  return getEngineNativeType(engine).toUpperCase();
+}
+
 export function getEngineNativeAceMode(engine) {
   switch (engine) {
     case "mongo":
@@ -74,10 +78,6 @@ export function getElevatedEngines() {
   ];
 }
 
-export function getEngineNativeRequiresTable(engine) {
-  return engine === "mongo";
-}
-
 export function getEngineSupportsFirewall(engine) {
   return engine !== "googleanalytics";
 }
diff --git a/frontend/src/metabase/lib/engine.unit.spec.ts b/frontend/src/metabase/lib/engine.unit.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5fc1e700bd3e1ef11e2a5f942fa609b2fb462064
--- /dev/null
+++ b/frontend/src/metabase/lib/engine.unit.spec.ts
@@ -0,0 +1,11 @@
+import { getEngineNativeAceMode } from "metabase/lib/engine";
+
+describe("getEngineNativeAceMode", () => {
+  it("should be SQL mode for H2", () => {
+    expect(getEngineNativeAceMode("h2")).toBe("ace/mode/sql");
+  });
+
+  it("should be JSON for MongoDB", () => {
+    expect(getEngineNativeAceMode("mongo")).toBe("ace/mode/json");
+  });
+});
diff --git a/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx b/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx
index db4fabcd7512354dea7035b70dd5b9a6d54e45e9..2aec5e06d15ee963af39c53324157e7bd4f05670 100644
--- a/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx
+++ b/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx
@@ -23,6 +23,7 @@ import { connect } from "react-redux";
 import slugg from "slugg";
 
 import { isEventOverElement } from "metabase/lib/dom";
+import { getEngineNativeAceMode } from "metabase/lib/engine";
 import { SQLBehaviour } from "metabase/lib/ace/sql_behaviour";
 import ExplicitSize from "metabase/components/ExplicitSize";
 
@@ -142,7 +143,7 @@ class NativeQueryEditor extends Component {
       editorElement.classList.add("read-only");
     }
 
-    const aceMode = query.aceMode();
+    const aceMode = getEngineNativeAceMode(query.engine());
     const session = this._editor.getSession();
 
     if (session.$modeId !== aceMode) {
diff --git a/frontend/src/metabase/query_builder/components/NativeQueryEditor/DataSourceSelectors/DataSourceSelectors.jsx b/frontend/src/metabase/query_builder/components/NativeQueryEditor/DataSourceSelectors/DataSourceSelectors.jsx
index 2f5d989deba2fb36f80f03fa5d1d91a98bd89ba0..8ae2fb90923deb3b304363ed73f88e4bfb0f9a83 100644
--- a/frontend/src/metabase/query_builder/components/NativeQueryEditor/DataSourceSelectors/DataSourceSelectors.jsx
+++ b/frontend/src/metabase/query_builder/components/NativeQueryEditor/DataSourceSelectors/DataSourceSelectors.jsx
@@ -6,6 +6,7 @@ import {
   DatabaseDataSelector,
   SchemaAndTableDataSelector,
 } from "metabase/query_builder/components/DataSelector";
+import { getNativeQueryLanguage } from "metabase/lib/engine";
 
 const DataSourceSelectorsPropTypes = {
   isNativeEditorOpen: PropTypes.bool.isRequired,
@@ -178,7 +179,7 @@ TableSelector.propTypes = TableSelectorPropTypes;
 
 const Placeholder = ({ query }) => (
   <div className="ml2 p2 text-medium">
-    {t`This question is written in ${query.nativeQueryLanguage()}.`}
+    {t`This question is written in ${getNativeQueryLanguage(query.engine())}.`}
   </div>
 );
 
diff --git a/frontend/test/metabase-lib/lib/queries/NativeQuery.unit.spec.js b/frontend/test/metabase-lib/lib/queries/NativeQuery.unit.spec.js
index 743efa8ca5a7f11713635b10197b3dfe91867f97..f9c386aec74227c43fc675d575d127dfbaca69d6 100644
--- a/frontend/test/metabase-lib/lib/queries/NativeQuery.unit.spec.js
+++ b/frontend/test/metabase-lib/lib/queries/NativeQuery.unit.spec.js
@@ -78,14 +78,6 @@ describe("NativeQuery", () => {
         expect(makeMongoQuery("").supportsNativeParameters()).toBe(false);
       });
     });
-    describe("aceMode()", () => {
-      it("Mongo gets JSON mode ", () => {
-        expect(makeMongoQuery("").aceMode()).toBe("ace/mode/json");
-      });
-      it("H2 gets generic SQL mode in the editor", () => {
-        expect(query.aceMode()).toBe("ace/mode/sql");
-      });
-    });
   });
 
   describe("Queries have some helpful status checks", () => {