Google Cloud has announced the launch of NL2SQL (natural language to SQL) with Gemini and BigQuery. This technology has the potential to transform how we interact with data by enabling non-technical users to interact with databases, explore data, and gain insights on their own, without needing specialized SQL knowledge. However, there are challenges that make it difficult for NL2SQL to be widely adopted. These challenges include data formatting variations, semantic ambiguity, the syntactic rigidity of SQL, and custom business metrics. This blog post explores NL2SQL solutions on Google Cloud and best practices for implementation. Some of the challenges users face include ambiguous or underspecified questions, or complex questions that require multi-step analysis. To address these challenges, Gemini Flash 1.5 has been engineered as a routing agent to classify questions based on their complexity. Once the question is classified, techniques such as ambiguity checks, vector embeddings, semantic searches, and contribution analysis modeling can be used to improve the outputs. Google Cloud uses a full complement of tools to help implement a working NL2SQL solution. These tools include vector embedding and retrieval using BigQuery vector search, BigQuery contribution analysis, and ambiguity checks with Gemini. NL2SQL best practices include starting with the questions to be answered, data preprocessing, practicing SQL refinement with user feedback and iteration, and using a custom flow for multi-step queries.