The artificial intelligence languages, so called in the old days, such as LISP and PROLOG, are also considered to be non-procedural although the case for LISP a bit murky since the pure LISP is supposed to be a functional language.
Someone needs to fix this entry. A language such as Visual Basic or Java is procedural because the elements of the language are used to create step-by-step procedures or instructions that the computer will follow. A non-procedural language is does not consist of steps or sequence, but represents a state. HTML, XML, SQL and Microsoft LINQ represent the category of non-procedural languages. An example from computer history would be RPG, the Report Program Generator. The name of this languange, RPG, gives one a hint as to the functioning of a non-procedural language. To be specific, the computer must process the non-procedural source into executable instructions. The non-procdural source does not specify how the computer is to produce the output. That is left to the author(s) of the language processor. For example, a variety of language processors share the responsibility to generate a dynamic web page from the various source files. Some of these source files may be procedural, i.e. JavaScript, and others may be non-procedural, e.g. XHTML.
As far as references are concerned, almost any up-to-date programming book will agree with me. One reference you can quote is Deitel and Deitel Visual Basic 2010 .Net How to Program.