code: function (column, cb) {
              var ds = this.naked().ungraphed().select(column), col;
              return ds.map(function (r) {
                  return r[col || (col = Object.keys(r)[0])];
              }, cb);
          }
docs: Selects the column given (either as an argument or as a callback), and
  returns an array of all values of that column in the dataset.  If you
  give a block argument that returns an array with multiple entries,
  the contents of the resulting array are undefined.
  
  
  @example
  // SELECT id FROM table
  DB.from("table").selectMap("id").chain(function(selectMap){
  // e,g. selectMap === [3, 5, 8, 1, ...]
  });
  
  // SELECT abs(id) FROM table
  DB.from("table").selectMap(function(){
  return this.abs("id");
  }).chain(function(selectMap){
  //e.g selectMap === [3, 5, 8, 1, ...]
  });
  
  @param {*} column  The column to return the values for.
  See {@link patio.Dataset#select} for valid column values.
  @param {Function} [cb] a function to be called when the aciton is complete
  
  @return {comb.Promise} a promise resolved with the array of mapped values.