Any reason this is needed given we already catch Exception? (Also, it's only been added in a few cases - e.g. tableExists doesn't catch RuntimeException.)

If we do need it it might be better to make this a DatasetException so we know it came from Kite.