docs: public static Procedure compileMigrateProcedure(Table table, String procName,
              Column column, ComparisonOperation comparison) {
          Procedure proc = addProcedure(table, procName);
  
          // Select count(*)
          StringBuilder sb = new StringBuilder();
          sb.append("SELECT COUNT(*) FROM " + table.getTypeName());
          sb.append(" WHERE not migrating AND " + column.getName() + " " + comparison.toString() + " ?;");
          addStatement(table, proc, sb.toString(), "0");
  
           // Get cutoff value
          sb.setLength(0);
          sb.append("SELECT " + column.getName() + " FROM " + table.getTypeName());
          sb.append(" WHERE not migrating ORDER BY " + column.getName());
          if (comparison == ComparisonOperation.LTE || comparison == ComparisonOperation.LT) {
              sb.append(" ASC OFFSET ? LIMIT 1;");
          } else {
              sb.append(" DESC OFFSET ? LIMIT 1;");
          }
          addStatement(table, proc, sb.toString(), "1");
  
          // Migrate
          sb.setLength(0);
          sb.append("MIGRATE FROM " + table.getTypeName());
          sb.append(" WHERE not migrating AND " + column.getName() + " " + comparison.toString() + " ?;");
          addStatement(table, proc, sb.toString(), "2");
  
          return proc;
      }