diff --git a/src/metabase/query_processor/store.clj b/src/metabase/query_processor/store.clj
index 786d9ec07a515f004061d18c1ac9433a946b2915..93ee2bc0e050f409a1f9b66eb8f823de0319589c 100644
--- a/src/metabase/query_processor/store.clj
+++ b/src/metabase/query_processor/store.clj
@@ -67,6 +67,7 @@
   "Columns you should fetch for any Table you want to stash in the Store."
   [:id
    :name
+   :display_name
    :schema])
 
 (def ^:private TableInstanceWithRequiredStoreKeys
diff --git a/test/metabase/query_processor/middleware/annotate_test.clj b/test/metabase/query_processor/middleware/annotate_test.clj
index 0020e444162da55e5961563b14ea8e65fd5879d1..30071e986bdd7859494b1204296040efe5b47a6e 100644
--- a/test/metabase/query_processor/middleware/annotate_test.clj
+++ b/test/metabase/query_processor/middleware/annotate_test.clj
@@ -4,12 +4,16 @@
             [metabase
              [driver :as driver]
              [util :as u]]
-            [metabase.models.field :refer [Field]]
+            [metabase.models
+             [field :refer [Field]]
+             [table :refer [Table]]]
             [metabase.query-processor
              [store :as qp.store]
              [test-util :as qp.test-util]]
             [metabase.query-processor.middleware.annotate :as annotate]
-            [metabase.test.data :as data]
+            [metabase.test
+             [data :as data]
+             [util :as tu]]
             [toucan.db :as db]
             [toucan.util.test :as tt]))
 
@@ -91,7 +95,7 @@
 (expect
   [(data/$ids venues
      (assoc (info-for-field :categories :name)
-       :display_name "VENUES → Name"
+       :display_name "Venues → Name"
        :fk_field_id  %category_id
        :source       :fields
        :field_ref    &CATEGORIES__via__CATEGORY_ID.categories.name))]
@@ -108,6 +112,28 @@
                            :fk-field-id  %category_id}]}}
         {:columns [:name]})))))
 
+;; we shuld use the `display_name` of a Table instead of its `name` in joined display names
+(expect
+  [(data/$ids venues
+     (assoc (info-for-field :categories :name)
+       :display_name "Geographical locations to share Tips about → Name" ; RIP GeoTips
+       :fk_field_id  %category_id
+       :source       :fields
+       :field_ref    &CATEGORIES__via__CATEGORY_ID.categories.name))]
+  (qp.test-util/with-everything-store
+    (data/$ids venues
+      (tu/with-temp-vals-in-db Table $$venues {:display_name "Geographical locations to share Tips about"}
+        (doall
+         (annotate/column-info
+          {:type  :query
+           :query {:fields [&CATEGORIES__via__CATEGORY_ID.categories.name]
+                   :joins  [{:alias        "CATEGORIES__via__CATEGORY_ID"
+                             :source-table $$venues
+                             :condition    [:= $category_id &CATEGORIES__via__CATEGORY_ID.categories.id]
+                             :strategy     :left-join
+                             :fk-field-id  %category_id}]}}
+          {:columns [:name]}))))))
+
 ;; when using `:joined-field` clauses for a join a source query (instead of a source table), `display_name` should
 ;; include the join alias
 (expect
@@ -117,18 +143,18 @@
        :fk_field_id  %category_id
        :source       :fields
        :field_ref    &cats.categories.name))]
- (qp.test-util/with-everything-store
-   (data/$ids venues
-     (doall
-      (annotate/column-info
-       {:type  :query
-        :query {:fields [&cats.categories.name]
-                :joins  [{:alias        "cats"
-                          :source-query {:source-table $$venues}
-                          :condition    [:= $category_id &cats.categories.id]
-                          :strategy     :left-join
-                          :fk-field-id  %category_id}]}}
-       {:columns [:name]})))))
+  (qp.test-util/with-everything-store
+    (data/$ids venues
+      (doall
+       (annotate/column-info
+        {:type  :query
+         :query {:fields [&cats.categories.name]
+                 :joins  [{:alias        "cats"
+                           :source-query {:source-table $$venues}
+                           :condition    [:= $category_id &cats.categories.id]
+                           :strategy     :left-join
+                           :fk-field-id  %category_id}]}}
+        {:columns [:name]})))))
 
 ;; when a `:datetime-field` form is used, we should add in info about the `:unit`
 (expect
diff --git a/test/metabase/query_processor_test.clj b/test/metabase/query_processor_test.clj
index 6ae7ef3b4b020d2bd9269923cbaca5f0001c0bf5..7dee4e9bf434871d653a67333dde29753a1961f1 100644
--- a/test/metabase/query_processor_test.clj
+++ b/test/metabase/query_processor_test.clj
@@ -169,12 +169,13 @@
 (defn fk-col
   "Return expected `:cols` info for a Field that came in via an implicit join (i.e, via an `fk->` clause)."
   [source-table-kw source-field-kw, dest-table-kw dest-field-kw]
-  (let [source-col      (col source-table-kw source-field-kw)
-        dest-col        (col dest-table-kw dest-field-kw)
-        dest-table-name (db/select-one-field :name Table :id (data/id dest-table-kw))
-        join-alias      (#'add-implicit-joins/join-alias dest-table-name (:name source-col))]
+  (let [source-col              (col source-table-kw source-field-kw)
+        dest-col                (col dest-table-kw dest-field-kw)
+        dest-table-display-name (db/select-one-field :display_name Table :id (data/id dest-table-kw))
+        dest-table-name         (db/select-one-field :name Table :id (data/id dest-table-kw))
+        join-alias              (#'add-implicit-joins/join-alias dest-table-name (:name source-col))]
     (-> dest-col
-        (update :display_name (partial format "%s → %s" dest-table-name))
+        (update :display_name (partial format "%s → %s" (or dest-table-display-name dest-table-name)))
         (assoc :field_ref   [:joined-field join-alias [:field-id (:id dest-col)]]
                :fk_field_id (:id source-col)))))
 
diff --git a/test/metabase/test/util.clj b/test/metabase/test/util.clj
index 108d190fb86be0389534cab13b486bfcf04e50bb..fcb2eb13f2ffa64bc0c5b40894d607f071326344 100644
--- a/test/metabase/test/util.clj
+++ b/test/metabase/test/util.clj
@@ -337,6 +337,8 @@
         [original-column->value] (db/query {:select (keys column->temp-value)
                                             :from   [model]
                                             :where  [:= :id (u/get-id object-or-id)]})]
+    (assert original-column->value
+      (format "%s %d not found." (name model) (u/get-id object-or-id)))
     (try
       (db/update! model (u/get-id object-or-id)
         column->temp-value)