CR - line up case =>
CR - Remove a commented line.  We do not need the call to updateVersionInfo.  makeCopy covers it.  One is create (dataset_copies) while the other is update (dataset_copies).  I had not clean up some "unnecessary" stuff in the datasets table just to make the transition more friendly.  We can do the clean up later.
CR - Comment that we are not really handling snapshots.
CR - change some map to foreach.
CR - Make short if else one line.
CR - split sql despite that I do not really like building sql this way especially without named argument support.
CR - add log on create column.