diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/HazelcastLeadershipService.java b/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/HazelcastLeadershipService.java
index 801b0b3..8e2a7ee 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/HazelcastLeadershipService.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/HazelcastLeadershipService.java
@@ -18,6 +18,7 @@
 import static com.google.common.base.Preconditions.checkArgument;
 import static org.onlab.util.Tools.namedThreads;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -153,8 +154,20 @@
 
     @Override
     public Map<String, Leadership> getLeaderBoard() {
-        throw new UnsupportedOperationException("I don't know what to do." +
-                                                        " I wish you luck.");
+        Map<String, Leadership> result = new HashMap<>();
+
+        //
+        // Get the leaders for the topics.
+        // NOTE: A topic is listed only if this instance is running for
+        // a leadership for that topic.
+        //
+        for (Topic topic : topics.values()) {
+            Leadership leadership = new Leadership(topic.topicName(),
+                                                   topic.leader(),
+                                                   0L); // TODO: epoch not used
+            result.put(topic.topicName(), leadership);
+        }
+        return result;
     }
 
     @Override
@@ -193,6 +206,15 @@
         }
 
         /**
+         * Gets the topic name.
+         *
+         * @return the topic name
+         */
+        private String topicName() {
+            return topicName;
+        }
+
+        /**
          * Gets the leader for the topic.
          *
          * @return the leader for the topic
