public ProcedureData GetProcedure(string procName, ObjectData columnTemplate)
        {
            var procTemplate = new ProcedureData(columnTemplate.TableName, procName);

            try
            {
                var list = GetProcedureParams(columnTemplate.TableName, procName, DatabaseUserId);
                foreach (var parameter in list.FindAll(p => p.InOut == "IN"))
                {
                    var match = columnTemplate.Find(t => t.ColumnName.Equals(parameter.ColumnName));
                    if (match != null)
                    {
                        procTemplate.Add(parameter);
                    }
                }

                procTemplate.OutParam = list.FirstOrDefault(p => p.InOut == "OUT");
            }
            catch (Exception ex)
            {
                throw new ProcedureMetadataRetrievalException(ex, columnTemplate.TableName, procName);
            }

            return(procTemplate);
        }