Uber recently made a blog post sharing its approach from a simple natural language user query to a successful SQL query in a natural language response. Given the hundreds of tables that they have, that is a challenge. The attached YouTube video discusses the blog post. There are some great ideas in here for a cool approach. https://www.youtube.com/watch?v=nXuTJrzkn9Q