docs: public VoltTable[] run(SystemProcedureExecutionContext ctx) {
          // Choose the lowest site ID on this host to actually flip the bit
  
          if (ctx.isLowestSiteId()) {
              VoltDBInterface voltdb = VoltDB.instance();
              OperationMode opMode = voltdb.getMode();
              if (LOG.isDebugEnabled()) {
                  LOG.debug("voltdb opmode is " + opMode);
              }
              ZooKeeper zk = voltdb.getHostMessenger().getZK();
              try {
                  Stat stat;
                  OperationMode zkMode = null;
                  Code code;
                  do {
                      stat = new Stat();
                      code = Code.BADVERSION;
                      try {
                          byte [] data = zk.getData(VoltZK.operationMode, false, stat);
                          if (LOG.isDebugEnabled()) {
                              LOG.debug("zkMode is " + (zkMode == null ? "(null)" : OperationMode.valueOf(data)));
                          }
                          zkMode = data == null ? opMode : OperationMode.valueOf(data);
                          if (zkMode == PAUSED) {
                              if (LOG.isDebugEnabled()) {
                                  LOG.debug("read node at version " + stat.getVersion() + ", txn " + ll(stat.getMzxid()));
                              }
                              break;
                          }
                          stat = zk.setData(VoltZK.operationMode, PAUSED.getBytes(), stat.getVersion());
                          code = Code.OK;
                          zkMode = PAUSED;
                          if (LOG.isDebugEnabled()) {
                              LOG.debug("!WROTE! node at version " + stat.getVersion() + ", txn " + ll(stat.getMzxid()));
                          }
                          break;
                      } catch (BadVersionException ex) {
                          code = ex.code();
                      }
                  } while (zkMode != PAUSED && code == Code.BADVERSION);
  
                  m_stat = stat;
                  voltdb.getHostMessenger().pause();
                  voltdb.setMode(PAUSED);
  
               // for snmp
                  SnmpTrapSender snmp = voltdb.getSnmpTrapSender();
                  if (snmp != null) {
                      snmp.pause("Cluster paused.");
                  }
  
              } catch (Exception e) {
                  throw new RuntimeException(e);
              }
          }
  
          // Force a tick so that stats will be updated.
          // Primarily added to get latest table stats for DR pause and empty db check.
          ctx.getSiteProcedureConnection().tick();
  
          VoltTable t = new VoltTable(VoltSystemProcedure.STATUS_SCHEMA);
          t.addRow(VoltSystemProcedure.STATUS_OK);
          return (new VoltTable[] {t});
      }